<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const originalArr = [2, 3, 2, 4, 3, 5];

    // 2. 初始化用于存储结果的变量
    const uniqueArr = []; // 存储去重后的新数组
    const countObj = {};  // 存储元素出现次数的对象（键：元素，值：次数）

    // 3. 核心 for 循环：遍历原始数组，完成去重和计数
    for (let i = 0; i < originalArr.length; i++) {
      // 获取当前遍历到的元素
      const current = originalArr[i];

      // -------------- 步骤1：统计元素出现次数 --------------
      if (countObj[current] === undefined) {
        // 若当前元素在 countObj 中不存在，说明是第一次遇到，初始化为 1
        countObj[current] = 1;
      } else {
        // 若已存在，次数累加 1
        countObj[current]++;
      }

      // -------------- 步骤2：数组去重（添加到 uniqueArr） --------------
      // 检查 current 是否已在 uniqueArr 中（用 indexOf 判断，不存在则返回 -1）
      if (uniqueArr.indexOf(current) === -1) {
        // 若不存在，就添加到 uniqueArr 中
        uniqueArr.push(current);
      }
    }
    console.log("无重复数组：", uniqueArr);    // 输出：无重复数组： [2, 3, 4, 5]
    console.log("元素出现次数：", countObj);   // 输出：元素出现次数： {2: 2, 3: 2, 4: 1, 5: 1}

  </script>
</body>

</html>